• Ìá½»ÐèÇó
    *
    *

    *
    *
    *
    Á¢¼´Ìá½»
    µã»÷¡±Á¢¼´Ìá½»¡±£¬±íÃ÷ÎÒÀí½â²¢Í¬Òâ ¡¶»Æ½ð³Ç¿Æ¼¼Òþ˽Ìõ¿î¡·

    logo

      ²úÆ·Óë·þÎñ
      ½â¾ö·½°¸
      ¼¼ÊõÖ§³Ö
      ºÏ×÷·¢Õ¹
      ¹ØÓڻƽð³Ç

      ÉêÇëÊÔÓÃ
        »Æ½ð³Ç¹ÙÍøÊµÑéÊÒ | HTTP×ß˽¹¥»÷Ô­Àí·ÖÎö
        ·¢²¼Ê±¼ä£º2020-09-04 ÔĶÁ´ÎÊý£º 379 ´Î

        µ±½ñÍøÂç»·¾³Ï¹¥»÷Êֶβã³ö²»ÇÆóÒµÔÚÆ£ÓÚÓ¦¶ÔAPTµÈ¹¥»÷ʱ£¬²ßÂÔ¼°×ÊÔ´½«»áÂýÂýÇãб£¬µ¼ÖºܶàÆóÒµºöÊÓÁËһЩ±¬³ö½Ï¾Ã¡¢ÀûÓÃΣº¦²»´óµÄ©¶´¡£ÕâÖÖÏë·¨±¾ÉíÊÇ´íÎóµÄ£¬Ç§Íò²»ÒªÇáÊÓÈκÎÒ»¸ö¿´ÆðÀ´Ã»Ê²Ã´Î£Ïյĩ¶´£¬µ«ÕâЩ©¶´´ò³ö¡°×éºÏÈ­¡±Ê±£¬ÆäÍþÁ¦Ò²Ï൱¿ÉÅ¡£


        ±¾ÆÚ»Æ½ð³Ç»Æ½ð³Ç¹ÙÍøÊµÑéÊÒ½«¸ø´ó¼Ò·ÖÎöÒ»Öֺڿͳ£ÓõĹ¥»÷©¶´Ò²¾ÍÊÇHTTP×ß˽©¶´µÄÔ­Àí¡£


        ©¶´¼ò½é


        HTTP×ß˽©¶´×îÔçÊÇÔÚ2005ÄêÓÉWatchfire¼Ç¼µÄ¡£¿´Â©¶´Ãû×Ö¾ÍÖªµÀ£¬ÕâÊÇÒ»¸öÓëHTTPЭÒéÏà¹ØµÄ©¶´¡£ÔÚĿǰµÄÍøÂç»·¾³Ï£¬ºÜ¶àÍøÕ¾¶¼ÊDzÉÓÃǰºó¶Ë·ÖÀëµÄ·½Ê½½øÐпª·¢µÄ£¬µ«²»Í¬µÄ·þÎñÆ÷¿ÉÄÜ»áÓв»Í¬µÄ·½Ê½ÊµÏÖRFCЭÒé±ê×¼£¬Õâʱºò¹¥»÷Õ߾ͿÉÄÜÀûÓÃǰºó¶Ë·þÎñÆ÷¶ÔÊý¾Ý°üµÄ±ß½çÁ˽ⲻһÖµÄÇé¿ö£¬ÏòÒ»¸öÇëÇóÊý¾Ý°üÖвåÈëÏÂÒ»¸öÇëÇóÊý¾Ý°üµÄÒ»²¿·Ö£¬ÕâÑù¿ÉÄÜÔÚǰ¶Ë¿´À´ÕâÊÇÒ»¸öÍêÕûµÄÊý¾Ý°ü£¬µ«ÔÚºó¶Ë¿´À´ÕâÊÇÁ½¸öÊý¾Ý°ü£¬´Ó¶øÈƹýһЩ»Æ½ð³Ç¹ÙÍø¿ØÖÆ£¬Î´¾­ÊÚȨµÄ·ÃÎÊÃô¸ÐÊý¾ÝÉõÖÁÍ»ÆÆ±ß½ç¡£

         

        ¼òµ¥À´Ëµ£¬Õâ¸ö©¶´¾ÍÊǹ¥»÷ÕßÔÚ¾­¹ý²»¶ÏµØÌ½Ë÷Ö®ºó£¬´ó¸ÅÃþÇåÁËǰºó¶Ë¶ÔÊý¾Ý°üµÄ´¦Àí·½Ê½£¬È»ºóÒÔijÖÖÐÎʽ£¬ÀýÈ罫Á½¸öÊý¾Ý°üºÏ²¢³ÉÒ»¸ö£¬·¢Ë͸øºó¶Ë£¬ºó¶Ë¿ÉÄÜ»á³É¹¦½âÎöÁ½¸öÊý¾Ý°ü£¬´Ó¶øÈƹýÇ°ÃæµÄ»Æ½ð³Ç¹ÙÍø»úÖÆ¡£



        ©¶´ÐγÉÔ­Àí


        ÄÇô¾¿¾¹ÊÇΪʲô»á²úÉúÕâÖÖÇé¿öÄØ£¿ÕâÀïÎÒÃÇÒªÏȽéÉÜ2¸ö¸ÅÄHTTP PipeliningºÍTransfer-Encoding¡£ÔÚHTTP1.1Ö®ºó£¬ÐÂÔöÁËÒ»¸öÌØÊâµÄÇëÇóÍ·Connection£ºKeep-Alive£¬Õâ¸ö×ֶεÄÒâ˼ÊDZíʾÕâÊÇÒ»¸ö³¤Á¬½Ó¡£Ëµµ½³¤Á¬½Ó£¬¾Í²»µÃ²»ÌáÒ»ÏÂTCPÎÕÊÖÁË£¬ÖÚËùÖÜÖª£¬HTTPÊÇÔËÐÐÔÚTCPÉÏÒ»²ãµÄЭÒ飬¶øTCP±¾Éí¾ÍÓÐÆô¶¯ÂýµÄÌØµã£¬ËùÒÔΪÁ˾¡¿ÉÄÜÌá¸ßHTTPµÄÐÔÄÜ£¬³¤Á¬½Óµ®ÉúÁË¡£

         

        ʹÓÃÒì²½¼¼Êõ¿ÉÒÔ½«¶à¸öhttpÇëÇóÅúÁ¿Ìá½»£¬¶ø²»ÓõÈÊÕµ½ÏìÓ¦ÔÙ¿ªÊ¼ÏÂÒ»¸öÇëÇó¡£



        È»ºóÎÒÃÇÔÙ˵Transfer-EncodingÕâÒ»¸ÅÄÔÚÒÔǰÎÒÃÇÓÐÒ»¸öÖ¸±êContent-LengthÄܹ»°ïÖúÎÒÃÇʶ±ðÒ»¸öÊý¾Ý°üµÄ±ß½ç£¬ä¯ÀÀÆ÷¿ÉÒÔͨ¹ýContent-LengthµÄ³¤¶ÈÐÅÏ¢£¬ÅжϳöÏìӦʵÌåÒѽáÊø£¬µ«Ëæ×ÅÏÖÔÚ·þÎñ¶ËΪÁËÓû§µÄÌåÑ飬ÏëÒª»º´æËùÓÐÄÚÈÝÒÔ½µµÍTTFBµÄÖµ£¬ËùÒÔÏÖÔÚÎÒÃǼ±ÐèÒ»¸öеĻúÖÆÄܹ»²»ÒÀÀµÍ·²¿µÄ³¤¶ÈÐÅÏ¢£¬¾ÍÄÜÖªµÀʵÌåµÄ±ß½ç¡£

         

        ¶Ôû´í£¬Transfer-Encoding³öÀ´¾È³¡ÁË£¬Transfer-EncodingËäȻҲÊÇÒ»¸öÍ·ÐÅÏ¢£¬µ«ÊÇËûÆäʵ±íʾµÄÊÇ·Ö¿é±àÂ룬µ±ÎÒÃÇʹÓÃÁËÕâ¸ö±¨ÎÄÍ·ºó£¬¾Í´ú±í±¨ÎIJÉÓÃÁË·Ö¿é±àÂ룬Õâʱ±¨ÎÄÖеÄʵÌåÐèÒª¸ÄΪÓÃһϵÁзֿéÀ´´«Ê䡣ÿ¸ö·Ö¿é°üº¬Ê®Áù½øÖƵij¤¶ÈÖµºÍÊý¾Ý£¬³¤¶ÈÖµ¶ÀÕ¼Ò»ÐУ¬³¤¶È²»°üÀ¨Ëü½áβµÄ CRLF£¨ £©£¬Ò²²»°üÀ¨·Ö¿éÊý¾Ý½áβµÄ CRLF¡£×îºóÒ»¸ö·Ö¿é³¤¶ÈÖµ±ØÐëΪ 0£¬¶ÔÓ¦µÄ·Ö¿éÊý¾ÝûÓÐÄÚÈÝ£¬±íʾʵÌå½áÊø¡£

         

        Ok¡£Ïà¹ØµÄ¸ÅÄîÎÒÃǶ¼Çå³þÁË£¬´ÓHTTP1.1¿ªÊ¼£¬¾ÍÒѾ­Ö§³ÖÁËͨ¹ýTCP·¢ËͶà¸öHTTPÇëÇ󣬷þÎñÆ÷½âÎö±êÍ·ÒÔ¼ÆËã³öÿ¸ö½áÊøµÄλÖÃÒÔ¼°ÏÂÒ»¸ö¿ªÊ¼µÄλÖã¬ËäÈ»ÕâÌýÆðÀ´ÊǺܺÏÀíµÄÉè¼Æ£¬µ«×ÐϸÏëÏ룬ÕâÒâζןó¶Ë·þÎñÆ÷Óëǰ¶Ë·þÎñÆ÷¾Íÿ¸öÏûÏ¢µÄ½áÊøÎ»ÖñØÐëҪͳһ£¬·ñÔò£¬Èç¹û¹¥»÷Õß·¢ËÍÒ»¸öÄ£ºý²»ÇåµÄÇëÇ󣬸ÃÇëÇ󱻺ó¶Ë½âÊÍΪһ¸öÍêÕûµÄÇëÇó¼ÓÉϲÐȱµÄÏÂÒ»¸öÇëÇó£¬ÕâÑù¾Í»á²úÉúHTTP×ß˽©¶´¡£


        HTTP×ß˽©¶´·ÖÀà


        1. Content-Length + Content-LengthÇé¿ö£º


        ¼ÙÉèǰºó¶ËºóÔÊÐí½ÓÊÕÒ»¸öÊý¾Ý°üÖк¬ÓÐÁ½¸öContent-Length£¬ÇÒǰ¶ËÓÅÏÈ¿¼ÂǵÚÒ»¸öÄÚÈݳ¤¶È£¬¶øºó¶ËÓÅÏÈ¿¼Âǵڶþ¸öÄÚÈݳ¤¶È£¬Òò´Ë¹¥»÷Õß¿ÉÒÔ¹¹ÔìÈçÏÂÊý¾Ý°ü£º

         

        POST /HTTP/1.1

        Host: example.com

        Content-Length: 5

        Content-Length: 4


        1234A

         

        ÕâÑùǰ¶Ë¶ÁÈ¡µ½µÚÒ»¸öÄÚÈݳ¤¶ÈΪ5£¬¾Í½«Õû¸öÊý¾Ý°ü·¢Ë͸øºó¶Ë£¬¶øºó¶Ëͨ¹ý¶ÁÈ¡µÚ¶þ¸öÄÚÈݳ¤¶Èºó£¬½«¶ÔÊý¾Ý°üÖкìÉ«ÄÚÈÝ·¢ÆðÏìÓ¦£¬¶øÒÅÁôÏÂÀ´µÄÀ¶É«ÄÚÈÝA,½«±»´æ´¢ÔÚ»º³åÇøÄÚ£¬²¢ÓÚÏÂÒ»¸öÊý¾Ý°ü½øÐÐÆ´½ÓºóÖ´ÐУ¬ÕâÑù¾Í»áµ¼Ö·þÎñÆ÷³ö´í£¬ÒýÆðÒâÍâÏìÓ¦¡£ËäÈ»ÕâÖÖÇé¿ö·¢ÉúµÄÄѶÈÌ«¸ß£¬¶øÇÒRFC7230ÒѾ­¹æ¶¨ÁË·þÎñÆ÷µ±ÊÕµ½ÇëÇóÖаüº¬Á½¸öContent-LengthÇÒÁ½ÕßµÄÖµ²»Í¬Ê±£¬ÐèÒª·µ»Ø400´íÎ󣬵«ÄÑÃâ»áÓзþÎñÆ÷²»Ñϸñ×ñÊØ¹æ·¶µÄÇé¿ö·¢Éú¡£


        2. Content-Length + Transfer-EncodingÇé¿ö£º


        ¹ËÃû˼Ò壬һ¸öÊý¾Ý°ü¿ÉÄܼȴæÔÚContent-Length±¨ÎÄÍ·Ò²¿ÉÄÜ´æÔÚTransfer-Encoding±¨ÎÄÍ·£¬¼ÙÉèǰ¶Ë°´ÕÕContent-LengthÀ´¶¨ÒåÊý¾Ý°ü±ß½ç£¬¶øºó¶ËÔòÒÔTransfer-Encoding±¨ÎÄͷΪ׼¡£ÄÇô¹¥»÷Õß¿ÉÄܹ¹ÔìÈçÏÂÊý¾Ý°ü£º

              

        POST /HTTP/1.1

        Host£ºexample.com

        Content-Length£º6

        Transfer-Encoding£ºchunked


        0

        A

         

        ÕâÑùǰ¶Ë¶ÁÈ¡µ½CL×Ö¶ÎΪ6£¬ËùÒԻὫÕû¸öÊý¾Ý°ü·¢Ë͸øºó¶Ë£¬¶øºó¶Ëͨ¹ý¶ÁÈ¡TEµÄ±êÍ·£¬Ã÷È·Á˱¨ÎÄʵÌå²ÉÓÃÁË·Ö¿é±àÂëµÄ·½Ê½£¬·Ö¿é±àÂëÊÇÓÐÌØ¶¨µÄ¸ñʽ£¬Ç°Ò»ÐÐΪ·Ö¿é±àÂë´óС£¬ºóÒ»ÐÐΪ¾ßÌåµÄÊýÖµ£¬×îÖÕÒÔ0Ϊ½á⣬ËùÒÔºó¶ËÖ»¶ÔÊý¾Ý°üÖеĺìÉ«²¿·Ö½øÐÐÏìÓ¦£¬ÒÅÁôϵÄA»á±»ÁôÔÚ»º³åÇøÖУ¬µÈ´ýºóÐøÇëÇóµÄµ½À´£¬×îÖÕÔì³ÉÒì³£¡£


        3. Transfer-Encoding + Content-LengthÇé¿ö£º


        ͬµÚ¶þÖÖ·½·¨ÀàËÆ£¬Õâ´ÎÊÇǰ¶Ë¸ù¾ÝTransfer-EncodingÀ´¶¨ÒåÊý¾Ý°ü±ß½ç£¬ºó¶Ë¸ù¾ÝContent-LengthÀ´¶¨Òå±ß½ç¡£ÄÇô¹¥»÷Õß¿ÉÄܹ¹ÔìÈçÏÂÊý¾Ý°ü£º

              

        POST /HTTP/1.1

        Host£ºexample.com

        Content-Length£º3

        Transfer-Encoding£ºchunked

              

        1

        A

        0

         

        ǰ¶ËÔÚ½ÓÊÕµ½TEµÄ±¨ÎÄÍ·ºó£¬Ã÷È·±¨ÎÄʵÌå²ÉÓÃÁË·Ö¿é±àÂ뷽ʽ£¬²¢ÇÒÒÔ0Ϊ½áÊø£¬·¢Ë͸øºó¶Ë¡£ºó¶ËÔÚ½ÓÊÕµ½Á˱¨ÎÄÖеÄCLºó£¬Ã÷È·±¨ÎÄʵÌ峤¶ÈΪ3£¬Ò²¾ÍÊǵ½ºìÉ«ÄÚÈÝ´¦½øÐÐÏìÓ¦£¬ÒÅÁôÏÂÀ´µÄA 0 ½«±»ÁôÔÚ»º³åÇøÖУ¬ÓëÏÂÒ»¸öÇëÇóÆ´½Ó£¬´Ó¶øÔì³ÉÒì³£¡£


        4. Transfer-Encoding + Transfer-EncodingÇé¿ö£º


        µ±Ò»¸öÊý¾Ý°üÖдæÔÚÁ½¸öTransfer-Encoding±¨ÎÄͷʱ²¢²»»áÒýÆðÈκδíÎó£¬ÒòΪRFCÖй涨ÁË¿ÉÒÔÔÊÐíÕâÖÖÇé¿öµÄ·¢Éú£¬µ«ÕâÑù¾ÍûÓÐʲôÒâÒåÁË£¬ËùÒÔÒ»°ãÇé¿ö¹¥»÷Õß»áÀûÓõڶþ¸öTEÍ·»ìÏý·Ö¿é±àÂëµÄÖ÷Ì壬ÈÃÒþ²ØÔÚÊÇʵÌåÖ®ÖеÄCLÖ´ÐУ¬¼ÙÉèǰ¶Ë½ÓÊÕµÚÒ»¸öTEÖµ¡¢ºó¶Ë½ÓÊܵڶþ¸öTEÖµ£¬¹¥»÷Õß¿ÉÄܹ¹ÔìÈçÏ´úÂ룺

         

        POST/ HTTP/1.1

        Host£ºexample.com

        Transfer-Encoding£ºchunked

        Transfer-Encoding£ºxxx

              

        5c

        GPOST / HTTP/1.1

        Content-Type£ºapplication/x-www-form-urlencoded

        Content-Length:15

              

        A=1

        0

         

        ǰ¶ËÔÚ½ÓÊÕµ½µÚÒ»¸öTEʱ£¬Ã÷ȷʵÌå²ÉÓ÷ֿé±àÂ룬²¢Ê¶±ðµ½×îÄ©¶ËÊý¾Ý0±íʾʵÌå½áÊø£¬½«Õû¸öÊý¾Ý°ü´«Ë͸øºó¶Ë£¬ºó¶Ë½âÎöµÚ¶þ¸öTE£¬·¢ÏÖ¸ñʽ´íÎó£¬ÕâʱºòĬÈÏÖ´ÐÐCL±¨ÎÄÍ·£¬ËùÒÔÕâ¸öÊý¾Ý°ü¾Í±»²ð·Ö³ÉÁËÁ½¸öÊý¾Ý°ü±»ºó¶ËÖ´Ðв¢ÏìÓ¦ÁË¡£


        ©¶´¼ì²â·½·¨


        1. ¸ù¾ÝÑÓʱ²éÕÒCL+TE»òTE+CL©¶´£º


        ¿ÉÒÔ·¢ËÍÈçÏÂÇëÇó£º


        POST / HTTP/1.1

        Host£ºexample.com

        Transfer-Encoding£ºchunked

        Content-Length£º4

              

        1

        A

        X


        ÀàËÆµÄÕâÖÖÇëÇó£¬Í¨³£¶¼»áµ¼ÖÂʱ¼äÑÓ³Ù£¬ÒòΪÒÅÁôÔÚ»º´æÇøµÄÄÚÈÝÐèÒªÏÂÒ»¸öÊý¾Ý°üµ½´ï²ÅÄܽáÊøÏìÓ¦£¬Òò´Ë»áÓÐÃ÷ÏÔµÄÑÓ³ÙЧӦ¡£Í¬ÀíÕë¶ÔTE+CL©¶´£¬Ö»ÒªÉÔ΢ÐÞ¸ÄһϲâÊÔÊý¾Ý°ü¼´¿É¡£

         

        2. ¾Ý²îÒìÏìӦȷÈÏHTTPÇëÇó×ß˽©¶´£º


        ¿ÉÒÔ·¢ËÍÈçÏÂÊý¾Ý°ü£º


        POST/search HTTP/1.1

        Host: vulnerable-website.com

        Content-Length:50

        Transfer-Encoding:chunked

           

        e

        q=smuggling&x=

        0

           

        GET /404HTTP/1.1

        Foo: x

         

        ǰ¶Ë·þÎñÆ÷¸ù¾ÝCLµÄ½âÎö£¬½«È«²¿ÄÚÈݶ¼·¢Ë͸øºó¶Ë£¬¶øºó¶Ë¸ù¾ÝTEµÄ´æÔÚ£¬½«Æä·Ö³ÉÁËÁ½¸öÊý¾Ý°ü£º


        POST/search HTTP/1.1

        Host:vulnerable-website.com

        Content-Length:50

        Transfer-Encoding:chunked


        e

        q=smuggling&x=

        0

        ºÍ

        GET /404HTTP/1.1

        Foo: x


        ¿É¼û×îºóÁ½Ðб»±£ÁôÔÚ»º³åÇøÖУ¬Ò»µ©ËûÃÇÓëÏÂÒ»¸öÊý¾Ý°üµÄÐÅϢƴ½ÓÔÚÁËÒ»Æð£¬½«»áµ¼ÖÂÊý¾Ý°ü¸ñʽ´íÎ󣬷µ»Ø404Ò³Ãæ£¬Ö¤Ã÷ȷʵ´æÔÚCL+TE©¶´¡£

         

        ·ÀÓùÐÞ¸´·½°¸


        ÔÚǰ¶Ë·þÎñÆ÷ͨ¹ýÍ¬Ò»ÍøÂçÁ¬½Ó½«¶à¸öÇëÇóת·¢µ½ºó¶Ë·þÎñÆ÷µÄÇé¿öÏ£¬»á³öÏÖHTTPÇëÇó×ß˽©¶´£¬²¢ÇÒºó¶ËÁ¬½ÓËùʹÓõÄЭÒéÓпÉÄÜ»áÔì³É±ß½ç²»Í³Ò»µÄ·çÏÕ¡£·ÀÖ¹HTTPÇëÇó×ß˽©¶´µÄһЩͨÓ÷½·¨ÈçÏ£º

         

        ? ½ûÓúó¶ËÁ¬½ÓµÄÖØÓã¬ÒÔ±ãÿ¸öºó¶ËÇëÇóͨ¹ýµ¥¶ÀµÄÍøÂçÁ¬½Ó·¢ËÍ¡£

        ? Ê¹ÓÃHTTP / 2½øÐкó¶ËÁ¬½Ó£¬ÒòΪ´ËЭÒé¿É·ÀÖ¹¶ÔÇëÇóÖ®¼äµÄ±ß½ç²úÉúÆçÒå¡£

        ? Ç°¶Ë·þÎñÆ÷ºÍºó¶Ë·þÎñÆ÷ʹÓÃÍêÈ«ÏàͬµÄWeb·þÎñÆ÷Èí¼þ£¬ÒÔ±ãËüÃǾÍÇëÇóÖ®¼äµÄ½çÏÞ´ï³ÉÒ»Ö¡£
        Ãâ·ÑÊÔÓÃ
        ·þÎñÈÈÏß

        ÂíÉÏ×Éѯ

        400-811-3777

        »Øµ½¶¥²¿
        ¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿